//import java.lang.reflect.Array;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Collections;
//import java.util.Scanner;
//
//public class Main {

//    def merge(L, mid, R):
//    global res
//    i = L;j = mid+1;t=0
//            while(i <= mid and j <= R):# 左半边和右半边有一个到边界就结束
//    if(a[i] > a[j]):
//    b[t] = a[j]; t+=1;j+=1   # 如果前一个子序列的元素比后面子序列的元素大，有逆序对，且有mid-(i-1)个
//            res = res + mid-i+1   #记录逆序对数量
//    else: b[t] = a[i]; t+=1;i+=1   # 如果前一个子序列的元素比后面子序列的元素小，无逆序对。
//            #一个子序列中的数都处理完了，另一个还没有，把剩下的复制过来
//  while i <= mid:  b[t]=a[i];t+=1; i+=1
//            while j <= R:b[t]=a[j];t+=1 ;j+=1
//            for i in range(t): a[L+i] = b[i]#把排好序的b[]复制回给a[]
//
//    def merge_sort(L, R): # 分治
//  if L<R:
//    mid = (L+R)// 2  #平分成两个子序列
//    merge_sort(L, mid)    # 对左半边进行分治
//    merge_sort (mid+1, R) # 对右半边进行分治
//    merge(L,mid, R)       # 归并
//    n = int(input ())
//    a = list(map(int,input().split()))
//    b =[0]*n  # 辅助数组：拷贝操作
//            res = 0
//    merge_sort(0,n-1)
//    print(res)
//
//    public static void main(String[] args) {
//        Scanner scan = new Scanner(System.in);
//        int n = scan.nextInt();
//        ArrayList<Integer> list = new ArrayList();
//        int max = 0;
//        int index = 0;
//        for (int i = 0; i < n; i++) {
//            list.add(scan.nextInt());
//            //找出最大值
//            if(list.get(i) > max){
//                max = list.get(i);
//                index = i;
//            }
//        }
//        int res = n - index;
//        list.remove(index);
//        for(int i = 0; i < list.size(); i++){
//
//        }


    //        for(int ){
//
//        }
//        for (int i = 0; i < n; i++) {
//            for (int j = i + 1; j < n; j++) {
//                if (array[i] > array[j]) {
//                    res++;
//                }
//            }
//        }
//        System.out.println(res);
//    }
//}
//import java.util.Scanner;
//
//public class Main {
//    static int[] isYear = new int[]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//    static int[] notYear = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//
//    public static boolean Year(String s) {
//        int temp = Integer.valueOf(s.substring(6, 8));
//        if (temp % 4 == 0) {
//            return true;
//        } else {
//            return false;
//        }
//    }
//
//    public static boolean MMDD(String s) {
//        int temp1 = Integer.valueOf(s.substring(0, 2));
//        if (temp1 > 12 || temp1 <= 0) return false;
//        int temp2 = Integer.valueOf(s.substring(3, 5));
//        if (Year(s)) {
//            //是闰年
//            if (temp2 > isYear[temp1 - 1] || temp2 <= 0) {
//                return false;
//            }
//        } else {
//            //不是闰年
//            if (temp2 > notYear[temp1 - 1] || temp2 <= 0) {
//                return false;
//            }
//        }
//        return true;
//    }
//
//    public static boolean DDMM(String s) {
//
//        int temp2 = Integer.valueOf(s.substring(0, 2));
//        int temp1 = Integer.valueOf(s.substring(3, 5));
//        if (temp1 > 12 || temp1 <= 0) return false;
//        if (Year(s)) {
//            //是闰年
//            if(temp1 <= 0 && temp1 > 12)return false;
//            if (temp2 > isYear[temp1 - 1] || temp2 <= 0) {
//                return false;
//            }
//        } else {
//            //不是闰年
//            if (temp2 > notYear[temp1 - 1] || temp2 <= 0) {
//                return false;
//            }
//        }
//        return true;
//    }
//
//    public static void main(String[] args) {
//
//        Scanner scan = new Scanner(System.in);
//        String s = scan.next();
//
//        if (MMDD(s) && DDMM(s)) {
//            System.out.println("BOTH");
//        } else if (MMDD(s)) {
//            System.out.println("MMDDYY");
//        } else if (DDMM(s)) {
//            System.out.println("DDMMYY");
//        } else {
//            System.out.println("NOTHING");
//        }
//    }
//}

//    public static void main(String[] args) {
//        Scanner scan = new Scanner(System.in);
//        int m = scan.nextInt();
//        int n = scan.nextInt();
//        int c = scan.nextInt();
//        int[] w = new int[m];
//        int[] t = new int[m];
//
//        //初始化
//        for(int i = 0; i < m; i++){
//            w[i] = scan.nextInt();
//        }
//        for(int i = 0; i < m; i++){
//            t[i] = scan.nextInt();
//        }
//        //所有方案都试一试,找出最接近临界值
//        ArrayList<Integer> list1 = new ArrayList<>();
//        ArrayList<Integer> list2 = new ArrayList<>();
//        ArrayList<Integer> list3 = new ArrayList<>();
//        for(int i = 0; i < m; i++){
//            if(t[i] == 1){
//                list1.add(w[i]);
//            }
//            if(t[i] == 2){
//                list2.add(w[i]);
//            }
//            if(t[i] == 3){
//                list3.add(w[i]);
//            }
//        }
//        if(list1.size() == 0 || list2.size() == 0 || list3.size() == 0) System.out.println(0);
//        ArrayList<Integer> list4 = new ArrayList<>();
//        int l1 = list1.size();
//        int l2 = list2.size();
//        int l3 = list3.size();
//        for(int i = 0; i < l1; i++){
//            for(int j = 0; j < l2; j++){
//                for(int k = 0; k < l3; k++){
//                    list4.add(list1.get(i) + list2.get(j) + list3.get(k));
//                }
//            }
//        }
//        Collections.sort(list4);
//        for(int i = 0; i < list4.size(); i++){
//            if(list4.get(i) > c && i == 0){
//                System.out.println(0);
//                break;
//            }
////            if(i == list4.size() - 1 && list4.get(list4.size() - 1) < c){
////                System.out.println(list4.get(list4.size() - 1));
////                break;
////            }
//            if(i == list4.size() - 1 && list4.get(list4.size() - 1) < c){
//                System.out.println(list4.get(list4.size() - 1));
//                break;
//            }
//            if(list4.get(i) <= c && list4.get(i + 1) > c){
//                System.out.println(list4.get(i));
//                break;
//            }
//        }
//
//
//    }
//}

//



/*
有不超过15组数据
每组数据两行。第一行是整数m，表示有m个加号要放( 0<=m<=50)
第二行是若干个数字。数字总数n不超过50,且 m <= n-1
输入：
2
123456
1
123456
4
12345
输出：
102
579
15
*/

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
//import java.util.Scanner;


//public class Main {
//    static PrintWriter out =new PrintWriter(System.out);
//    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
//    static StreamTokenizer in=new StreamTokenizer(ins);
//    /**
//     * 输入
//     * in.nextToken()
//     * int a= (int)in.nval;
//     *
//     * 输出
//     * out.print();
//     * out.flush();
//     */
//    static int[]a;
//    static int[]b;
//    static int n;
//    static long m;
//    public static void main(String[] args) throws IOException {
//        String[] s=ins.readLine().split(" ");
//        n=Integer.parseInt(s[0]);
//        m=Long.parseLong(s[1]);
//        a=new int[n];
//        b=new int[n];
//        String[] s2=ins.readLine().split(" ");
//        for (int i = 0; i < n; i++) {
//            a[i]=Integer.parseInt(s2[i]);
//        }
//        String[] s3=ins.readLine().split(" ");
//        for (int i = 0; i < n; i++) {
//            b[i]=Integer.parseInt(s3[i]);
//        }
//        int l=0;
//        int r=2*n;
//        int ans=0;
//        while (l<=r){
//            int mid=(l+r)/2;
//            if(check(mid)){
//                ans=mid;
//                l=mid+1;
//            }else {
//                r=mid-1;
//            }
//        }
//        out.println(ans);
//        out.flush();
//    }
//    static boolean check(int t){
//        long temp=m;//记录空白卡牌
//        for (int i = 0; i < n; i++) {
//            if(a[i]>=t)continue;
//            if(b[i]+a[i]<t)return false;
//            if(temp+a[i]<t)return false;
//            if(t-a[i]<=temp){
//                temp-=(t-a[i]);
//            }else{
//                return false;
//            }
//        }
//        return true;
//    }
//}
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Scanner;
//public class Main {
//    public static boolean prime(long num1) {
//        for (int i = 2; i <= Math.pow(num1, 0.5); i++) {
//            if (num1 % i == 0) {
//                return false;
//            }
//        }
//        return true;
//    }
//
//    public static void main(String[] args) {
//        Scanner scan = new Scanner(System.in);
//        long input = scan.nextLong();
//        int sum = 0;
//        for (long i = 2; i <= input; i++) {
//            if (input % i == 0 && prime(i)) {
//                sum++;
//            }
//        }
//        System.out.println(sum);
//    }
//}


public class Demo12 {

    public static int vowelStrings(String[] words, int left, int right) {

        int res = 0;

        for(int i = left; i <= right; i++){
            String s = words[i];
            int n = s.length() - 1;
            if((s.charAt(0) == 'a' || s.charAt(0) == 'e' || s.charAt(0) == 'i' || s.charAt(0) == 'o' || s.charAt(0) == 'u') &&
                    ((s.charAt(n) == 'a' || s.charAt(n) == 'e' || s.charAt(n) == 'i' || s.charAt(n) == 'o' || s.charAt(n) == 'u')
            )){
                res++;
            }
        }

        return res;
    }

    public static int maxScore(int[] nums) {
        int n = nums.length;
        Integer[] array = new Integer[n];
        for(int i = 0; i < n; i++){
            array[i] = nums[i];
        }
        Arrays.sort(array, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        int res = 0;
        int sum = 0;
        for(int i = 0; i < n; i++){
            sum += array[i];
            res++;
            if(sum <= 0)break;
        }
        return res;


    }
    public static int[] getNext(String s){
        char[] p = s.toCharArray();
        int[] next = new int[p.length];
        next[0] = -1;
        int j = 0; int k = -1;
        while(j < p.length - 1){
            if(k == -1 || p[j] == p[k]){
                next[++j] = ++k;
            }else{
                k = next[k];
            }
        }
        return next;
    }
    public static void main(String[] args) {
        String s = "leeto";
        int[] t = getNext(s);
        for(int i = 0 ; i < s.length(); i++){
            System.out.println(t[i]);

        }
    }






    public static int[] position(int[] a, int[] b) {
        int indexMin = Integer.MAX_VALUE;
        int i = 0;
        int pos = 0;
        for(i = 0; i < a.length; i++){
            //找出a中牌中最少的那张
            if(a[i] < indexMin){
                indexMin = a[i];
                pos = i;
            }
        }


        if(b[indexMin] <= 0){
            return  new int[]{(-1) * indexMin,pos};
        }
        return new int[]{indexMin,pos};
    }

    public static void main1(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();//n种张牌
        int m = scan.nextInt();//可添加的牌的数量

        int[] a = new int[n];
        int[] b = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = scan.nextInt();
        }
        for (int j = 0; j < n; j++) {
            b[j] = scan.nextInt();
        }
        for (int i = 1; i <= m; i++) {
            int[] num1 = position(a, b);
            //找出要放牌的位置
            if(num1[0] < 0){
                System.out.println(Math.abs(num1[0]));
                break;
            }
            b[num1[1]]--;
            a[num1[1]]++;

            if(i == m){
                System.out.println(num1[0]);
            }
        }
    }
}
//    //最大数为ox3f3f3f3f
//    static int n,m;
//    static String numberstring;
//    static int[] a=new int[1005];//存输入的数字传
//    static int[][] num=new int[1005][1005];//预存从第1位到第n位的所有可能拼凑出的值
//    static int[][] dp=new int[1005][1005];//dp[m][n]在n位数字之间添加m个加号所能形成的表达式的最小值。
//    public static void main(String[] args) {
//        // TODO Auto-generated method stub
//        Scanner reader=new Scanner(System.in);
//
//        numberstring = reader.next();
////            m=reader.nextInt();//加号的数量
//            n=numberstring.length();//1-9的数字的个数
//            for(int i=1;i<=n;i++)
//                a[i]=numberstring.charAt(i-1)-'0';
//            //预处理，计算i位到j位拼凑出的数字
//            for(int i=1;i<=n;i++) {
//                num[i][i]=a[i];//i和j在同一个位置，也就是只有一个数字的情况
//                for(int j=i+1;j<=n;j++)
//                    num[i][j]=num[i][j-1]*10+a[j];
//            }
//            //将dp数组中的所有值，初始化为无穷大
//            for(int i=0;i<=n-1;i++)
//                Arrays.fill(dp[i],0);
//            for(int j=1;j<=n;j++)
//                dp[0][j]=num[1][j];//临界条件，无加号时的情况。
//            //递推式
//            for(int i=1;i<=n-1;i++)
//                for(int j=i;j<=n;j++)
//                    for(int k=i;k<=j;k++)
//                        dp[i][j]=Math.min(dp[i][j], dp[i-1][k]+num[k+1][j]);
//
//            int res = 0;
//            for(int i = 1; i <= n-1; i++){
//                for(int j = 1; j <= n; j++){
//                    res += dp[i][j];
//                }
//            }
//        System.out.println(res);
////            System.out.println(dp[m][n]);
//    }

//}

